<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content=
    "application/xhtml+xml; charset=iso-8859-1" />
    <title>
      6.9.&nbsp;Glibc-2.17
    </title>
    <link rel="stylesheet" href="../stylesheets/lfs.css" type="text/css" />
    <meta name="generator" content="DocBook XSL Stylesheets V1.73.2" />
    <link rel="stylesheet" href="../stylesheets/lfs-print.css" type=
    "text/css" media="print" />
  </head>
  <body class="lfs" id="lfs-7.3">
    <div class="navheader">
      <h4>
        Linux From Scratch - Version 7.3
      </h4>
      <h3>
        Chapter&nbsp;6.&nbsp;Installing Basic System Software
      </h3>
      <ul>
        <li class="prev">
          <a accesskey="p" href="man-pages.html" title=
          "Man-pages-3.47">Prev</a>
          <p>
            Man-pages-3.47
          </p>
        </li>
        <li class="next">
          <a accesskey="n" href="adjusting.html" title=
          "Adjusting the Toolchain">Next</a>
          <p>
            Adjusting the Toolchain
          </p>
        </li>
        <li class="up">
          <a accesskey="u" href="chapter06.html" title=
          "Chapter&nbsp;6.&nbsp;Installing Basic System Software">Up</a>
        </li>
        <li class="home">
          <a accesskey="h" href="../index.html" title=
          "Linux From Scratch - Version 7.3">Home</a>
        </li>
      </ul>
    </div>
    <div class="wrap" lang="en" xml:lang="en">
      <h1 class="sect1">
        <a id="ch-system-glibc" name="ch-system-glibc"></a>6.9. Glibc-2.17
      </h1>
      <div class="package" lang="en" xml:lang="en">
        <p>
          The Glibc package contains the main C library. This library
          provides the basic routines for allocating memory, searching
          directories, opening and closing files, reading and writing files,
          string handling, pattern matching, arithmetic, and so on.
        </p>
        <div class="segmentedlist">
          <div class="seglistitem">
            <div class="seg">
              <strong class="segtitle">Approximate build time:</strong>
              <span class="segbody">17.6 SBU</span>
            </div>
            <div class="seg">
              <strong class="segtitle">Required disk space:</strong>
              <span class="segbody">852 MB</span>
            </div>
          </div>
        </div>
      </div>
      <div class="installation" lang="en" xml:lang="en">
        <h2 class="sect2">
          6.9.1. Installation of Glibc
        </h2>
        <div class="admon note">
          <img alt="[Note]" src="../images/note.png" />
          <h3>
            Note
          </h3>
          <p>
            Some packages outside of LFS suggest installing GNU libiconv in
            order to translate data from one encoding to another. The
            project's home page (<a class="ulink" href=
            "http://www.gnu.org/software/libiconv/">http://www.gnu.org/software/libiconv/</a>)
            says &ldquo;<span class="quote">This library provides an
            <code class="function">iconv()</code> implementation, for use on
            systems which don't have one, or whose implementation cannot
            convert from/to Unicode.</span>&rdquo; Glibc provides an
            <code class="function">iconv()</code> implementation and can
            convert from/to Unicode, therefore libiconv is not required on an
            LFS system.
          </p>
        </div>
        <p>
          The Glibc build system is self-contained and will install
          perfectly, even though the compiler specs file and linker are still
          pointing at <code class="filename">/tools</code>. The specs and
          linker cannot be adjusted before the Glibc install because the
          Glibc autoconf tests would give false results and defeat the goal
          of achieving a clean build.
        </p>
        <p>
          The Glibc documentation recommends building Glibc outside of the
          source directory in a dedicated build directory:
        </p>
        <pre class="userinput">
<kbd class="command">mkdir -v ../glibc-build
cd ../glibc-build</kbd>
</pre>
        <p>
          Prepare Glibc for compilation:
        </p>
        <pre class="userinput">
<kbd class="command">../glibc-2.17/configure  \
    --prefix=/usr          \
    --disable-profile      \
    --enable-kernel=2.6.25 \
    --libexecdir=/usr/lib/glibc</kbd>
</pre>
        <div class="variablelist">
          <p class="title">
            <b>The meaning of the new configure options:</b>
          </p>
          <dl>
            <dt>
              <span class="term"><em class=
              "parameter"><code>--libexecdir=/usr/lib/glibc</code></em></span>
            </dt>
            <dd>
              <p>
                This changes the location of the <span class=
                "command"><strong>pt_chown</strong></span> program from its
                default of <code class="filename">/usr/libexec</code> to
                <code class="filename">/usr/lib/glibc</code>.
              </p>
            </dd>
          </dl>
        </div>
        <p>
          Compile the package:
        </p>
        <pre class="userinput">
<kbd class="command">make</kbd>
</pre>
        <div class="admon important">
          <img alt="[Important]" src="../images/important.png" />
          <h3>
            Important
          </h3>
          <p>
            In this section, the test suite for Glibc is considered critical.
            Do not skip it under any circumstance.
          </p>
        </div>
        <p>
          Generally a few tests do not pass, but you can generally ignore any
          of the test failures listed below. Now test the build results:
        </p>
        <pre class="userinput">
<kbd class="command">make -k check 2&gt;&amp;1 | tee glibc-check-log
grep Error glibc-check-log</kbd>
</pre>
        <p>
          You will probably see an expected (ignored) failure in the
          <span class="emphasis"><em>posix/annexc</em></span> and
          <span class="emphasis"><em>conform/run-conformtest</em></span>
          tests. In addition the Glibc test suite is somewhat dependent on
          the host system. This is a list of the most common issues:
        </p>
        <div class="itemizedlist">
          <ul>
            <li>
              <p>
                The <span class="emphasis"><em>nptl/tst-clock2</em></span>,
                <span class="emphasis"><em>nptl/tst-attr3</em></span>,
                <span class="emphasis"><em>tst/tst-cputimer1</em></span>, and
                <span class="emphasis"><em>rt/tst-cpuclock2</em></span> tests
                have been known to fail. The reason is not completely
                understood, but indications are that minor timing issues can
                trigger these failures.
              </p>
            </li>
            <li>
              <p>
                The math tests sometimes fail when running on systems where
                the CPU is not a relatively new genuine Intel or authentic
                AMD processor.
              </p>
            </li>
            <li>
              <p>
                When running on older and slower hardware or on systems under
                load, some tests can fail because of test timeouts being
                exceeded. Modifying the make check command to set a
                TIMEOUTFACTOR is reported to help eliminate these errors
                (e.g. <span class="command"><strong>TIMEOUTFACTOR=16 make -k
                check</strong></span>).
              </p>
            </li>
            <li>
              <p>
                Other tests known to fail on some architectures are
                posix/bug-regex32, misc/tst-writev, elf/check-textrel,
                nptl/tst-getpid2, and stdio-common/bug22.
              </p>
            </li>
          </ul>
        </div>
        <p>
          Though it is a harmless message, the install stage of Glibc will
          complain about the absence of <code class=
          "filename">/etc/ld.so.conf</code>. Prevent this warning with:
        </p>
        <pre class="userinput">
<kbd class="command">touch /etc/ld.so.conf</kbd>
</pre>
        <p>
          Install the package:
        </p>
        <pre class="userinput">
<kbd class="command">make install</kbd>
</pre>
        <p>
          Install NIS and RPC related headers that are not installed by
          default; these are required to rebuild glibc and by several BLFS
          packages:
        </p>
        <pre class="userinput">
<kbd class="command">cp -v ../glibc-2.17/sunrpc/rpc/*.h /usr/include/rpc
cp -v ../glibc-2.17/sunrpc/rpcsvc/*.h /usr/include/rpcsvc
cp -v ../glibc-2.17/nis/rpcsvc/*.h /usr/include/rpcsvc</kbd>
</pre>
        <p>
          The locales that can make the system respond in a different
          language were not installed by the above command. None of the
          locales are required, but if some of them are missing, test suites
          of the future packages would skip important testcases.
        </p>
        <p>
          Individual locales can be installed using the <span class=
          "command"><strong>localedef</strong></span> program. E.g., the
          first <span class="command"><strong>localedef</strong></span>
          command below combines the <code class=
          "filename">/usr/share/i18n/locales/cs_CZ</code> charset-independent
          locale definition with the <code class=
          "filename">/usr/share/i18n/charmaps/UTF-8.gz</code> charmap
          definition and appends the result to the <code class=
          "filename">/usr/lib/locale/locale-archive</code> file. The
          following instructions will install the minimum set of locales
          necessary for the optimal coverage of tests:
        </p>
        <pre class="userinput">
<kbd class="command">mkdir -pv /usr/lib/locale
localedef -i cs_CZ -f UTF-8 cs_CZ.UTF-8
localedef -i de_DE -f ISO-8859-1 de_DE
localedef -i de_DE@euro -f ISO-8859-15 de_DE@euro
localedef -i de_DE -f UTF-8 de_DE.UTF-8
localedef -i en_GB -f UTF-8 en_GB.UTF-8
localedef -i en_HK -f ISO-8859-1 en_HK
localedef -i en_PH -f ISO-8859-1 en_PH
localedef -i en_US -f ISO-8859-1 en_US
localedef -i en_US -f UTF-8 en_US.UTF-8
localedef -i es_MX -f ISO-8859-1 es_MX
localedef -i fa_IR -f UTF-8 fa_IR
localedef -i fr_FR -f ISO-8859-1 fr_FR
localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro
localedef -i fr_FR -f UTF-8 fr_FR.UTF-8
localedef -i it_IT -f ISO-8859-1 it_IT
localedef -i it_IT -f UTF-8 it_IT.UTF-8
localedef -i ja_JP -f EUC-JP ja_JP
localedef -i ru_RU -f KOI8-R ru_RU.KOI8-R
localedef -i ru_RU -f UTF-8 ru_RU.UTF-8
localedef -i tr_TR -f UTF-8 tr_TR.UTF-8
localedef -i zh_CN -f GB18030 zh_CN.GB18030</kbd>
</pre>
        <p>
          In addition, install the locale for your own country, language and
          character set.
        </p>
        <p>
          Alternatively, install all locales listed in the <code class=
          "filename">glibc-2.17/localedata/SUPPORTED</code> file (it includes
          every locale listed above and many more) at once with the following
          time-consuming command:
        </p>
        <pre class="userinput">
<kbd class="command">make localedata/install-locales</kbd>
</pre>
        <p>
          Then use the <span class=
          "command"><strong>localedef</strong></span> command to create and
          install locales not listed in the <code class=
          "filename">glibc-2.17/localedata/SUPPORTED</code> file in the
          unlikely case you need them.
        </p>
      </div>
      <div class="configuration" lang="en" xml:lang="en">
        <h2 class="sect2">
          <a id="conf-glibc" name="conf-glibc"></a>6.9.2. Configuring Glibc
        </h2>
        <p>
          The <code class="filename">/etc/nsswitch.conf</code> file needs to
          be created because, although Glibc provides defaults when this file
          is missing or corrupt, the Glibc defaults do not work well in a
          networked environment. The time zone also needs to be configured.
        </p>
        <p>
          Create a new file <code class="filename">/etc/nsswitch.conf</code>
          by running the following:
        </p>
        <pre class="userinput">
<kbd class="command">cat &gt; /etc/nsswitch.conf &lt;&lt; "EOF"
<code class="literal"># Begin /etc/nsswitch.conf

passwd: files
group: files
shadow: files

hosts: files dns
networks: files

protocols: files
services: files
ethers: files
rpc: files

# End /etc/nsswitch.conf</code>
EOF</kbd>
</pre>
        <p>
          Install timezone data:
        </p>
        <pre class="userinput">
<kbd class="command">tar -xf ../tzdata2012j.tar.gz

ZONEINFO=/usr/share/zoneinfo
mkdir -pv $ZONEINFO/{posix,right}

for tz in etcetera southamerica northamerica europe africa antarctica  \
          asia australasia backward pacificnew solar87 solar88 solar89 \
          systemv; do
    zic -L /dev/null   -d $ZONEINFO       -y "sh yearistype.sh" ${tz}
    zic -L /dev/null   -d $ZONEINFO/posix -y "sh yearistype.sh" ${tz}
    zic -L leapseconds -d $ZONEINFO/right -y "sh yearistype.sh" ${tz}
done

cp -v zone.tab iso3166.tab $ZONEINFO
zic -d $ZONEINFO -p America/New_York
unset ZONEINFO</kbd>
</pre>
        <div class="variablelist">
          <p class="title">
            <b>The meaning of the zic commands:</b>
          </p>
          <dl>
            <dt>
              <span class="term"><em class="parameter"><code>zic -L /dev/null
              ...</code></em></span>
            </dt>
            <dd>
              <p>
                This creates posix timezones, without any leap seconds. It is
                conventional to put these in both <code class=
                "filename">zoneinfo</code> and <code class=
                "filename">zoneinfo/posix</code>. It is necessary to put the
                POSIX timezones in <code class="filename">zoneinfo</code>,
                otherwise various test-suites will report errors. On an
                embedded system, where space is tight and you do not intend
                to ever update the timezones, you could save 1.9MB by not
                using the <code class="filename">posix</code> directory, but
                some applications or test-suites might give less good results
              </p>
            </dd>
            <dt>
              <span class="term"><em class="parameter"><code>zic -L
              leapseconds ...</code></em></span>
            </dt>
            <dd>
              <p>
                This creates right timezones, including leap seconds. On an
                embedded system, where space is tight and you do not intend
                to ever update the timezones, or care about the correct time,
                you could save 1.9MB by omitting the <code class=
                "filename">right</code> directory.
              </p>
            </dd>
            <dt>
              <span class="term"><em class="parameter"><code>zic ... -p
              ...</code></em></span>
            </dt>
            <dd>
              <p>
                This creates the <code class="filename">posixrules</code>
                file. We use New York because POSIX requires the daylight
                savings time rules to be in accordance with US rules.
              </p>
            </dd>
          </dl>
        </div>
        <p>
          One way to determine the local time zone is to run the following
          script:
        </p>
        <pre class="userinput">
<kbd class="command">tzselect</kbd>
</pre>
        <p>
          After answering a few questions about the location, the script will
          output the name of the time zone (e.g., <span class=
          "emphasis"><em>America/Edmonton</em></span>). There are also some
          other possible timezones listed in <code class=
          "filename">/usr/share/zoneinfo</code> such as <span class=
          "emphasis"><em>Canada/Eastern</em></span> or <span class=
          "emphasis"><em>EST5EDT</em></span> that are not identified by the
          script but can be used.
        </p>
        <p>
          Then create the <code class="filename">/etc/localtime</code> file
          by running:
        </p>
        <pre class="userinput">
<kbd class=
"command">cp -v --remove-destination /usr/share/zoneinfo/<em class="replaceable"><code>&lt;xxx&gt;</code></em> \
    /etc/localtime</kbd>
</pre>
        <p>
          Replace <em class="replaceable"><code>&lt;xxx&gt;</code></em> with
          the name of the time zone selected (e.g., Canada/Eastern).
        </p>
        <div class="variablelist">
          <p class="title">
            <b>The meaning of the cp option:</b>
          </p>
          <dl>
            <dt>
              <span class="term"><em class=
              "parameter"><code>--remove-destination</code></em></span>
            </dt>
            <dd>
              <p>
                This is needed to force removal of the already existing
                symbolic link. The reason for copying the file instead of
                using a symlink is to cover the situation where <code class=
                "filename">/usr</code> is on a separate partition. This could
                be important when booted into single user mode.
              </p>
            </dd>
          </dl>
        </div>
      </div>
      <div class="configuration" lang="en" xml:lang="en">
        <h2 class="sect2">
          <a id="conf-ld" name="conf-ld"></a>6.9.3. Configuring the Dynamic
          Loader
        </h2>
        <p>
          By default, the dynamic loader (<code class=
          "filename">/lib/ld-linux.so.2</code>) searches through <code class=
          "filename">/lib</code> and <code class="filename">/usr/lib</code>
          for dynamic libraries that are needed by programs as they are run.
          However, if there are libraries in directories other than
          <code class="filename">/lib</code> and <code class=
          "filename">/usr/lib</code>, these need to be added to the
          <code class="filename">/etc/ld.so.conf</code> file in order for the
          dynamic loader to find them. Two directories that are commonly
          known to contain additional libraries are <code class=
          "filename">/usr/local/lib</code> and <code class=
          "filename">/opt/lib</code>, so add those directories to the dynamic
          loader's search path.
        </p>
        <p>
          Create a new file <code class="filename">/etc/ld.so.conf</code> by
          running the following:
        </p>
        <pre class="userinput">
<kbd class="command">cat &gt; /etc/ld.so.conf &lt;&lt; "EOF"
<code class="literal"># Begin /etc/ld.so.conf
/usr/local/lib
/opt/lib
</code>
EOF</kbd>
</pre>
        <p>
          If desired, the dynamic loader can also search a directory and
          include the contents of files found there. Generally the files in
          this include directory are one line specifying the desired library
          path. To add this capability run the following commands:
        </p>
        <pre class="userinput">
<kbd class="command">cat &gt;&gt; /etc/ld.so.conf &lt;&lt; "EOF"
<code class="literal"># Add an include directory
include /etc/ld.so.conf.d/*.conf
</code>
EOF
mkdir /etc/ld.so.conf.d</kbd>
</pre>
      </div>
      <div class="content" lang="en" xml:lang="en">
        <h2 class="sect2">
          <a id="contents-glibc" name="contents-glibc"></a>6.9.4. Contents of
          Glibc
        </h2>
        <div class="segmentedlist">
          <div class="seglistitem">
            <div class="seg">
              <strong class="segtitle">Installed programs:</strong>
              <span class="segbody">catchsegv, gencat, getconf, getent,
              iconv, iconvconfig, ldconfig, ldd, lddlibc4, locale, localedef,
              makedb, mtrace, nscd, pcprofiledump, pldd, pt_chown, rpcgen,
              sln, sotruss, sprof, tzselect, xtrace, zdump, and zic</span>
            </div>
            <div class="seg">
              <strong class="segtitle">Installed libraries:</strong>
              <span class="segbody">ld.so, libBrokenLocale.{a,so},
              libSegFault.so, libanl.{a,so}, libbsd-compat.a, libc.{a,so},
              libc_nonshared.a, libcidn.so, libcrypt.{a,so}, libdl.{a,so},
              libg.a, libieee.a, libm.{a,so}, libmcheck.a, libmemusage.so,
              libnsl.{a,so}, libnss_compat.so, libnss_dns.so,
              libnss_files.so, libnss_hesiod.so, libnss_nis.so,
              libnss_nisplus.so, libpcprofile.so, libpthread.{a,so},
              libpthread_nonshared.a, libresolv.{a,so}, librpcsvc.a,
              librt.{a,so}, libthread_db.so, and libutil.{a,so}</span>
            </div>
            <div class="seg">
              <strong class="segtitle">Installed directories:</strong>
              <span class="segbody">/usr/include/arpa, /usr/include/bits,
              /usr/include/gnu, /usr/include/net, /usr/include/netash,
              /usr/include/netatalk, /usr/include/netax25,
              /usr/include/neteconet, /usr/include/netinet,
              /usr/include/netipx, /usr/include/netiucv,
              /usr/include/netpacket, /usr/include/netrom,
              /usr/include/netrose, /usr/include/nfs, /usr/include/protocols,
              /usr/include/rpc, /usr/include/rpcsvc, /usr/include/sys,
              /usr/lib/audit, /usr/lib/gconv, /usr/lib/glibc,
              /usr/lib/locale, /usr/share/i18n, /usr/share/zoneinfo,
              /var/db</span>
            </div>
          </div>
        </div>
        <div class="variablelist">
          <h3>
            Short Descriptions
          </h3>
          <table border="0">
            <col align="left" valign="top" />
            <tbody>
              <tr>
                <td>
                  <p>
                    <a id="catchsegv" name="catchsegv"></a><span class=
                    "term"><span class=
                    "command"><strong>catchsegv</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    Can be used to create a stack trace when a program
                    terminates with a segmentation fault
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="gencat" name="gencat"></a><span class=
                    "term"><span class=
                    "command"><strong>gencat</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    Generates message catalogues
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="getconf" name="getconf"></a><span class=
                    "term"><span class=
                    "command"><strong>getconf</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    Displays the system configuration values for file system
                    specific variables
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="getent" name="getent"></a><span class=
                    "term"><span class=
                    "command"><strong>getent</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    Gets entries from an administrative database
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="iconv" name="iconv"></a><span class=
                    "term"><span class=
                    "command"><strong>iconv</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    Performs character set conversion
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="iconvconfig" name="iconvconfig"></a><span class=
                    "term"><span class=
                    "command"><strong>iconvconfig</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    Creates fastloading <span class=
                    "command"><strong>iconv</strong></span> module
                    configuration files
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="ldconfig" name="ldconfig"></a><span class=
                    "term"><span class=
                    "command"><strong>ldconfig</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    Configures the dynamic linker runtime bindings
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="ldd" name="ldd"></a><span class=
                    "term"><span class="command"><strong>ldd</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    Reports which shared libraries are required by each given
                    program or shared library
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="lddlibc4" name="lddlibc4"></a><span class=
                    "term"><span class=
                    "command"><strong>lddlibc4</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    Assists <span class="command"><strong>ldd</strong></span>
                    with object files
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="locale" name="locale"></a><span class=
                    "term"><span class=
                    "command"><strong>locale</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    Prints various information about the current locale
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="localedef" name="localedef"></a><span class=
                    "term"><span class=
                    "command"><strong>localedef</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    Compiles locale specifications
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="makedb" name="makedb"></a><span class=
                    "term"><span class=
                    "command"><strong>makedb</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    Creates a simple database from textual input
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="mtrace" name="mtrace"></a><span class=
                    "term"><span class=
                    "command"><strong>mtrace</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    Reads and interprets a memory trace file and displays a
                    summary in human-readable format
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="nscd" name="nscd"></a><span class=
                    "term"><span class=
                    "command"><strong>nscd</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    A daemon that provides a cache for the most common name
                    service requests
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="pcprofiledump" name=
                    "pcprofiledump"></a><span class="term"><span class=
                    "command"><strong>pcprofiledump</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    Dumps information generated by PC profiling
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="pldd" name="pldd"></a><span class=
                    "term"><span class=
                    "command"><strong>pldd</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    Lists dynamic shared objects used by running processes
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="pt_chown" name="pt_chown"></a><span class=
                    "term"><span class=
                    "command"><strong>pt_chown</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    A helper program for <span class=
                    "command"><strong>grantpt</strong></span> to set the
                    owner, group and access permissions of a slave pseudo
                    terminal
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="rpcgen" name="rpcgen"></a><span class=
                    "term"><span class=
                    "command"><strong>rpcgen</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    Generates C code to implement the Remote Procedure Call
                    (RPC) protocol
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="sln" name="sln"></a><span class=
                    "term"><span class="command"><strong>sln</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    A statically linked <span class=
                    "command"><strong>ln</strong></span> program
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="sotruss" name="sotruss"></a><span class=
                    "term"><span class=
                    "command"><strong>sotruss</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    Traces shared library procedure calls of a specified
                    command
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="sprof" name="sprof"></a><span class=
                    "term"><span class=
                    "command"><strong>sprof</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    Reads and displays shared object profiling data
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="tzselect" name="tzselect"></a><span class=
                    "term"><span class=
                    "command"><strong>tzselect</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    Asks the user about the location of the system and
                    reports the corresponding time zone description
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="xtrace" name="xtrace"></a><span class=
                    "term"><span class=
                    "command"><strong>xtrace</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    Traces the execution of a program by printing the
                    currently executed function
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="zdump" name="zdump"></a><span class=
                    "term"><span class=
                    "command"><strong>zdump</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    The time zone dumper
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="zic" name="zic"></a><span class=
                    "term"><span class="command"><strong>zic</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    The time zone compiler
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="ld.so" name="ld.so"></a><span class=
                    "term"><code class="filename">ld.so</code></span>
                  </p>
                </td>
                <td>
                  <p>
                    The helper program for shared library executables
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="libBrokenLocale" name=
                    "libBrokenLocale"></a><span class="term"><code class=
                    "filename">libBrokenLocale</code></span>
                  </p>
                </td>
                <td>
                  <p>
                    Used internally by Glibc as a gross hack to get broken
                    programs (e.g., some Motif applications) running. See
                    comments in <code class=
                    "filename">glibc-2.17/locale/broken_cur_max.c</code> for
                    more information
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="libSegFault" name="libSegFault"></a><span class=
                    "term"><code class="filename">libSegFault</code></span>
                  </p>
                </td>
                <td>
                  <p>
                    The segmentation fault signal handler, used by
                    <span class="command"><strong>catchsegv</strong></span>
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="libanl" name="libanl"></a><span class=
                    "term"><code class="filename">libanl</code></span>
                  </p>
                </td>
                <td>
                  <p>
                    An asynchronous name lookup library
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="libbsd-compat" name=
                    "libbsd-compat"></a><span class="term"><code class=
                    "filename">libbsd-compat</code></span>
                  </p>
                </td>
                <td>
                  <p>
                    Provides the portability needed in order to run certain
                    Berkeley Software Distribution (BSD) programs under Linux
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="libc" name="libc"></a><span class=
                    "term"><code class="filename">libc</code></span>
                  </p>
                </td>
                <td>
                  <p>
                    The main C library
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="libcidn" name="libcidn"></a><span class=
                    "term"><code class="filename">libcidn</code></span>
                  </p>
                </td>
                <td>
                  <p>
                    Used internally by Glibc for handling internationalized
                    domain names in the <code class=
                    "function">getaddrinfo()</code> function
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="libcrypt" name="libcrypt"></a><span class=
                    "term"><code class="filename">libcrypt</code></span>
                  </p>
                </td>
                <td>
                  <p>
                    The cryptography library
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="libdl" name="libdl"></a><span class=
                    "term"><code class="filename">libdl</code></span>
                  </p>
                </td>
                <td>
                  <p>
                    The dynamic linking interface library
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="libg" name="libg"></a><span class=
                    "term"><code class="filename">libg</code></span>
                  </p>
                </td>
                <td>
                  <p>
                    Dummy library containing no functions. Previously was a
                    runtime library for <span class=
                    "command"><strong>g++</strong></span>
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="libieee" name="libieee"></a><span class=
                    "term"><code class="filename">libieee</code></span>
                  </p>
                </td>
                <td>
                  <p>
                    Linking in this module forces error handling rules for
                    math functions as defined by the Institute of Electrical
                    and Electronic Engineers (IEEE). The default is POSIX.1
                    error handling
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="libm" name="libm"></a><span class=
                    "term"><code class="filename">libm</code></span>
                  </p>
                </td>
                <td>
                  <p>
                    The mathematical library
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="libmcheck" name="libmcheck"></a><span class=
                    "term"><code class="filename">libmcheck</code></span>
                  </p>
                </td>
                <td>
                  <p>
                    Turns on memory allocation checking when linked to
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="libmemusage" name="libmemusage"></a><span class=
                    "term"><code class="filename">libmemusage</code></span>
                  </p>
                </td>
                <td>
                  <p>
                    Used by <span class=
                    "command"><strong>memusage</strong></span> to help
                    collect information about the memory usage of a program
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="libnsl" name="libnsl"></a><span class=
                    "term"><code class="filename">libnsl</code></span>
                  </p>
                </td>
                <td>
                  <p>
                    The network services library
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="libnss" name="libnss"></a><span class=
                    "term"><code class="filename">libnss</code></span>
                  </p>
                </td>
                <td>
                  <p>
                    The Name Service Switch libraries, containing functions
                    for resolving host names, user names, group names,
                    aliases, services, protocols, etc.
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="libpcprofile" name="libpcprofile"></a><span class=
                    "term"><code class="filename">libpcprofile</code></span>
                  </p>
                </td>
                <td>
                  <p>
                    Contains profiling functions used to track the amount of
                    CPU time spent in specific source code lines
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="libpthread" name="libpthread"></a><span class=
                    "term"><code class="filename">libpthread</code></span>
                  </p>
                </td>
                <td>
                  <p>
                    The POSIX threads library
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="libresolv" name="libresolv"></a><span class=
                    "term"><code class="filename">libresolv</code></span>
                  </p>
                </td>
                <td>
                  <p>
                    Contains functions for creating, sending, and
                    interpreting packets to the Internet domain name servers
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="librpcsvc" name="librpcsvc"></a><span class=
                    "term"><code class="filename">librpcsvc</code></span>
                  </p>
                </td>
                <td>
                  <p>
                    Contains functions providing miscellaneous RPC services
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="librt" name="librt"></a><span class=
                    "term"><code class="filename">librt</code></span>
                  </p>
                </td>
                <td>
                  <p>
                    Contains functions providing most of the interfaces
                    specified by the POSIX.1b Realtime Extension
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="libthread_db" name="libthread_db"></a><span class=
                    "term"><code class="filename">libthread_db</code></span>
                  </p>
                </td>
                <td>
                  <p>
                    Contains functions useful for building debuggers for
                    multi-threaded programs
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="libutil" name="libutil"></a><span class=
                    "term"><code class="filename">libutil</code></span>
                  </p>
                </td>
                <td>
                  <p>
                    Contains code for &ldquo;<span class=
                    "quote">standard</span>&rdquo; functions used in many
                    different Unix utilities
                  </p>
                </td>
              </tr>
            </tbody>
          </table>
        </div>
      </div>
    </div>
    <div class="navfooter">
      <ul>
        <li class="prev">
          <a accesskey="p" href="man-pages.html" title=
          "Man-pages-3.47">Prev</a>
          <p>
            Man-pages-3.47
          </p>
        </li>
        <li class="next">
          <a accesskey="n" href="adjusting.html" title=
          "Adjusting the Toolchain">Next</a>
          <p>
            Adjusting the Toolchain
          </p>
        </li>
        <li class="up">
          <a accesskey="u" href="chapter06.html" title=
          "Chapter&nbsp;6.&nbsp;Installing Basic System Software">Up</a>
        </li>
        <li class="home">
          <a accesskey="h" href="../index.html" title=
          "Linux From Scratch - Version 7.3">Home</a>
        </li>
      </ul>
    </div>
  </body>
</html>
